Robotic surgical tool with pivotable transmission linkage on translating carriage

ABSTRACT

An automated system for singulating items is provided. The automated system includes a singulation apparatus. The singulation apparatus includes multiple conveyor modules and a vertical frame structure. Each of the multiple conveyor modules has an identical physical structure. The vertical frame structure provides multiple horizontal mounting locations, each at a different height along the vertical frame structure. Each of the conveyor modules is mounted to a different one of the multiple horizontal mounting locations.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of co-pending U.S. patent applicationSer. No. 16/219,682, filed Dec. 13, 2018. The aforementioned relatedpatent application is herein incorporated by reference in its entirety.

BACKGROUND

The present disclosure generally relates to singulating items, and morespecifically, to an automated system that uses multiple conveyor beltsfor singulating items.

Many companies store, package, and ship items and/or groups of itemsfrom different types of facilities (e.g., warehouse, plant, distributioncenter, storehouse, factory, etc.). These various activities and theoverall flow or movement of items within the facility (e.g., fromreceiving the item(s) to storing the item(s), from storing the item(s)to shipping the item(s), etc.) is often labor intensive. The process ofsingulating generally involves separating (or isolating) an item from alarger group of items (e.g., in a container, on a conveyor belt, etc.)for downstream processing.

BRIEF DESCRIPTION OF DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, where like designations denotelike elements.

FIG. 1A is a block diagram illustrating an example automated singulationsystem, according to one embodiment.

FIG. 1B is a block diagram further illustrating components of theautomated singulated system described relative to FIG. 1A, according toone embodiment.

FIG. 2A illustrates a front perspective view of an example spiralconfiguration for a singulation tool, according to one embodiment.

FIG. 2B illustrates a top view of an example spiral configuration for asingulation tool, according to one embodiment.

FIG. 2C illustrates a side view of an example spiral configuration for asingulation tool, according to one embodiment.

FIG. 3 illustrates a top view of an example S-shaped configuration for asingulation tool, according to one embodiment.

FIG. 4 illustrates a top view of an example whirlpool configuration fora singulation tool, according to one embodiment.

FIG. 5A illustrates a perspective view of an example singulation module,according to one embodiment.

FIG. 5B illustrates a side view of an example singulation module,according to one embodiment.

FIG. 5C illustrates another side view of an example singulation module,according to one embodiment.

FIG. 5D illustrates a front view of an example singulation module,according to one embodiment.

FIG. 5E illustrates a bottom view of an example singulation module,according to one embodiment.

FIG. 6A illustrates a top view of an example frame structure for asingulation tool, according to one embodiment.

FIG. 6B illustrates a perspective view of an example frame structure fora singulation tool, according to one embodiment.

FIG. 7 illustrates a perspective view of another example frame structurefor a singulation tool, according to one embodiment.

FIG. 7A further illustrates a portion of the example frame structureillustrated in FIG. 7 , according to one embodiment.

FIG. 7B further illustrates another portion of the example framestructure illustrated in FIG. 7 , according to one embodiment.

FIG. 8A illustrates a perspective view of an example singulation tool,according to one embodiment.

FIG. 8B illustrates a top view of an example singulation tool, accordingto one embodiment.

FIG. 8C illustrates a side view of an example singulation tool,according to one embodiment.

FIG. 8C1 further illustrates a portion of the example singulation toolillustrated in FIG. 8C, according to one embodiment.

FIG. 8D illustrates another side view of an example singulation tool,according to one embodiment.

FIG. 8D1 further illustrates a portion of the example singulation toolillustrated in FIG. 8D, according to one embodiment.

FIG. 9A illustrates a perspective view of an example divert tool,according to one embodiment.

FIG. 9A1 further illustrates a portion of the example divert toolillustrated in FIG. 9A, according to one embodiment.

FIG. 9B illustrates a top view of an example divert tool, according toone embodiment.

FIG. 9C illustrates a front view of an example divert tool, according toone embodiment.

FIG. 10 illustrates a perspective view of an example conveyor belt of adivert tool, according to one embodiment.

FIG. 11 illustrates a side view of an example divert tool, according toone embodiment.

FIG. 12 illustrates an example scenario of item detection using multiplesensors on a singulation module, according to one embodiment.

FIGS. 13 A-C illustrate an example scenario of controlling singulationmodules in a linear configuration, according to one embodiment.

FIGS. 14 A-C illustrate another example scenario of controllingsingulation modules in a linear configuration, according to oneembodiment.

FIGS. 15 A-B illustrate an example scenario of controlling singulationmodules to prevent a jamming condition, according to one embodiment.

FIGS. 16 A-C illustrate an example scenario of controlling singulationmodules in a perpendicular configuration, according to one embodiment.

FIGS. 17 A-B illustrate another example scenario of controllingsingulation modules in a perpendicular configuration, according to oneembodiment.

FIGS. 18 A-B illustrate an example scenario of item detection whentransitioning between singulation modules, according to one embodiment.

FIG. 19 is a flowchart illustrating a method for singulating items usingmultiple singulation modules, according to one embodiment.

FIG. 20 is a flowchart illustrating a method for controlling singulationmodules in a linear configuration, according to one embodiment.

FIG. 21 is a flowchart illustrating a method for controlling singulationmodules in a perpendicular configuration, according to one embodiment.

FIG. 22 is a flowchart illustrating a method for configuring singulationmodules, according to one embodiment.

FIG. 23 is a flowchart illustrating a method for controlling singulationmodules to prevent jamming conditions, according to one embodiment.

FIG. 24 is a flowchart illustrating a method for recirculatingnon-singulated items through a singulation tool, according to oneembodiment.

DETAILED DESCRIPTION

Embodiments herein describe an automated system for singulating items,e.g., for shipping, sorting, etc. The system includes a singulation tool(or machine) that singulates items to a specified gap distance (e.g., toachieve a certain processing rate of units per hour (UPH)), a scan toolthat scans and processes items output from the singulation tool, and akickback (or divert) tool that is configured to divert (or re-direct)non-singulated items (output from the singulation tool) back to thesingulation tool via a recirculation line of conveyor belts. Thesingulation tool is a multi-tier conveyor belt system with multipleidentical conveyor belts arranged at different orientations and heights.Each of the conveyor belts is equipped with multiple sensors to detect(e.g., presence and position of) item(s) on the conveyor belt. Items maytransition onto an initial upstream conveyor belt and subsequently movethrough several (intermediary) downstream conveyor belts until reachinga last downstream conveyor belt of the singulation tool. As items aretransitioned into the singulation tool, some of the items may betouching, partially overlapping, and/or laying on one another. Asdescribed further below, each of the conveyor belts in the singulationtool is independently controlled such that the items are singulated(e.g., separated in distance with respect to one another such that theitems are no longer touching, overlapping, and/or laying on one another)as they move from the initial upstream conveyor belt to the lastdownstream conveyor belt in the singulation tool.

After exiting the singulation tool, items are transitioned through thescan tool. The scan tool captures identifying information (e.g., RFIDtag, barcodes, such as universal product code (UPC), stock keeping unit(SKU), etc.) associated with each item and verifies the item based onthe information. In one embodiment, the scan tool can determine whetheran item output from the singulation tool is properly singulated (e.g.,separated by a determined gap distance from another item) based on theverification. After passing through the scan tool, items aretransitioned through the divert tool, which is configured to divertitems that are not singulated to a recirculation line. For example,items that the scan tool is unable to read and/or that fail verificationare recirculated back to the singulation tool to undergo singulationagain.

FIG. 1A illustrates an example automated singulation system 100,according to one embodiment. As shown, the automated singulation system100 includes a master control system 102 and an equipment (or machine)area 110. The automated singulation system 100 may be included in anysuitable phase(s) of facility operations known to a person of ordinaryskill in the art. In one example, the automated singulation system 100may be used at a receiving station to singulate disparate items as theyare initially received into the facility. In another example, theautomated singulation system 100 may be used at a sorting station tosingulate picked items so they can be routed to different packagingstations (e.g., for order fulfillment). Other examples of suitablefacility operations may include staging at loading zones or otherpredefined regions within a facility, loading onto and/or off vehicles,and so forth.

In this particular embodiment, the equipment area 110 includes a loadingarea 112, singulation tool 114, scan tool 116, divert tool 118, andjunction segments 120, 122, 124, 126, 128, and 132. The junctionsegments 120, 122, 124, 126, 128, and 132 generally represent sectionsof the automated singulation system 100 in which items are moved (ortransitioned) within the equipment area 110. The junction segments 120,122, 124, 126, 128, and 132 can have a variety of differentconfigurations (e.g., shape, material, angle, height (or elevation),etc.) suitable for a given equipment area 110 within a facility. Forexample, one or more of the junction segments 120, 122, 124, 126, 128,and 132 can be oriented horizontally, tilted (e.g., with aninclination), etc. In some examples, one or more of the junctionsegments 120, 122, 124, 126, 128, and 132 may be at a different height(or elevation) than another one or more of the junction segments 120,122, 124, 126, 128, and 132. In some examples, one or more of thejunction segments 120, 122, 124, 126, 128, and 132 can have a surfaceshape that is substantially planar, crowned, domed, concave, convex,irregular, or any other shape or combination of shapes. Additionally,the material(s) that forms the top surface of the junction segments 120,122, 124, 126, 128, and 132 may be formed of one or more of a variety ofmaterials (e.g., metal, plastic, rubber, fabric, carpet, wood, tile,etc.). In one embodiment, one or more of the junction segments 120, 122,124, 126, 128, and 132 includes a conveyor belt or a series of conveyorbelts (that may have different configurations).

The loading area 112 generally represents an area in whichnon-singulated items are received by the automated singulation system100. In one embodiment, the non-singulated items may be received throughloaded totes (or containers) (e.g., totes filled with multiplenon-singulated items). For example, the loading area 112 may receive apallet or cart with multiple totes, each including multiple items. Insome examples, the totes may include items that were picked from aninventory area and that correspond to various shipment sets. The totesmay be of various sizes and shapes. In one embodiment, thenon-singulated items may be received at the loading area 112 asindividual items. The loading area 112 may receive loaded totes and/orindividual items using mechanical movement (e.g., using conveyor belts),motorized movement (e.g., using forklifts or carts), robotic movement,manual placement, and so forth.

The loading area 112 may be any space or configuration suitable foroperation(s) in a given facility. That is, the loading area 112 can havea variety of shapes, sizes, surface materials, and/or other properties.In one particular embodiment, at least a portion of the loading area 112may be at a different height (or elevation) than the entrance to thesingulation tool 114. For example, the loading area 112 can include anincline (cleated) conveyor belt that transitions items from the groundfloor of a facility to the singulation tool 114. In another example, theloading area 112 can include a series of conveyor belts at the elevatedheight of the singulation tool 114 that transition items to thesingulation tool 114 from another location within the facility.

From the loading area 112, loaded totes and/or individual itemstransition to the singulation tool 114 via junction segment 132. Thesingulation tool 114 includes multiple singulation modules 130 (alsoreferred to as conveyor belts) deployed in multiple tiers (or levels orhierarchies). As described further below, each singulation module 130 isa conveyor belt equipped with multiple sensors for detecting items onthe conveyor belt. In one embodiment, each singulation module 130 withinthe singulation tool 114 has an identical physical structure (e.g.,size, shape, material), but a different orientation and/or placementwithin the singulation tool 114. The singulation tool 114 may havevarious configurations (or shapes), e.g., depending on how thesingulation modules 130 are deployed. In one embodiment, the singulationmodules 130 may be mounted in a spiral configuration. For example, FIGS.2A, 2B, and 2C show a front perspective view, a top view, and a sideview, respectively, of singulation modules 130 A-N mounted in a spiralconfiguration. In another embodiment, the singulation modules 130 may bemounted in an S-shaped (or “snake”) configuration, e.g., as shown in the(top view) of a singulation tool 114 in FIG. 3 . In yet anotherembodiment, the singulation modules 130 may be mounted in a whirlpoolconfiguration, e.g., as shown in the (top view) of a singulation tool114 in FIG. 4 . In general, the singulation modules 130 can be mountedin any configuration suitable for the equipment area 110 of a facility.

Within a given configuration of the singulation tool 114, eachsingulation module 130 is placed at a different height with respect toanother singulation module 130, such that the singulation tool 114includes a series (or sequence) of singulation modules 130 waterfallingfrom one to the next. That is, each singulation module 130 is anupstream singulation module and/or a downstream singulation module 130with respect to another singulation module 130. As shown in FIG. 2C, forexample, singulation module 130A is an upstream singulation module withrespect to singulation module 130B, singulation module 130B is adownstream singulation module with respect to singulation module 130Aand an upstream singulation module with respect to singulation module130C, and so on. In some embodiments, one or more of the singulationmodules 130 can be oriented horizontally, titled (e.g., with aninclination), etc. By deploying singulation modules 130 in the variousconfigurations described herein, embodiments can reduce the areafootprint of the automated singulation system 100 within the facilityand improve accessibility to the automated singulation system 100 (e.g.,for maintenance, repairs, troubleshooting, etc.).

As shown in FIG. 1B, the control system 102 is connected to thesingulation tool 114, the scan tool 116, the divert tool 118, and thecloud computing service 160 via network 190. Network 190, in general, isrepresentative of a local area network (LAN) (e.g., Ethernet), wide areanetwork (WAN), wireless LAN (WLAN), personal area network (PAN),cellular network, etc. As items enter the singulation tool 114, thecontrol system 102 independently controls each of the singulationmodules 130 such that items are singulated when the items exit thesingulation tool 114. As shown, the control system 102 includes a mastercontroller 140 and each singulation module 130 includes a (local)controller 150, a motor 152, sensors 154, and a network interface 156.The master controller 140 provides control signals (or commands) to the(local) controller 150 and/or motor 152 in order to control theoperation of each singulation module 130. For example, the mastercontroller 140 may send stop commands, start commands, acceleratecommands, decelerate commands, and the like which control the operation(e.g., on/off control, speed, acceleration, etc.) of the singulationmodules 130. In one embodiment, the master controller 140 can includeprocessors or micro-controllers. The master controller 140 can includesolely hardware and firmware or can include combinations of hardware andsoftware elements. In one particular embodiment, the master controller140 is a programmable logic controller (PLC).

The (local) controller 150 can be a processor or a micro-controllerwhich receives commands from the master controller 140 (e.g., using thenetwork interface 156) and issues corresponding commands to the motor152, which controls the conveyor belt of the singulation module 130. Inaddition to receiving information from the master controller 140, thecontroller 150 can transmit information to the master controller 140using the network interface 156. For example, the controller 150 cansend information from sensors 154 (e.g., indicating detection and/orposition of items on the singulation module 130), information from motor152 (e.g., regarding current speed of the singulation module), and thelike to the master controller 140. As described further below, themaster controller 140 may use the information received from eachcontroller 150 to determine which commands (e.g., stop command, startcommand, etc.) to send to the controllers 150. The controller 150 caninclude solely hardware and firmware or can include combinations ofhardware and software elements. The network interface 156 maycommunicate using a wired communication protocol (e.g., Ethernet), awireless communication protocol (e.g., WiFi), etc.

Note that while FIG. 1B depicts each singulation module 130 with a(local) controller 150, in some embodiments, each singulation module 130may not be equipped with a local controller (e.g., controller 150). Inthese embodiments, the master controller 140 can send commands directlyto the motor 152 to control a singulation module 130. Similarly, themaster controller 140 can receive feedback information from thesingulation module 130 directly from the motor 152 and/or sensors 154via the network interface 156.

The motor 152 controls the on/off operation and speed of the singulationmodule 130, based on commands received from the controller 150 and/ormaster controller 140. The motor 152 can include, for example, analternating current (AC) motor, direct current (DC) motor, motor drivenroller, servo motor (e.g., integrated servo motor), etc. Sensors 154 aregenerally used for detecting items and/or location (or position) ofitems on the singulation module 130. The sensors 154, for example, caninclude proximity sensors, infrared (IR) sensors, laser (detection)sensors, array sensors, etc. In one embodiment, each singulation module130 includes a position sensor (e.g., array sensor) for detectingpresence and position (or location) of items on the singulation module130. In addition to the presence sensor, in some embodiments, eachsingulation module can include a presence sensor (e.g., laser sensor)for detecting low profile (or thin) items, such as envelopes, letters,etc. In one embodiment, the position sensor (e.g., array sensor) is alight curtain array with multiple zones for item detection and positiondetermination.

As shown in FIG. 1A, after exiting the singulation tool 114, itemstransition through the scan tool 116. The scan tool 116 is generallyconfigured to capture identifying information associated with each itemand interact with the control system 102 and/or the cloud computingservice 160 for verification of the item. That is, the scan tool 116 candetermine whether the item belongs in the particular phase of thefacility operations (in which the automated singulation system 100 isbeing used), whether the item is properly singulated, the subsequentdestination for the item, etc. The identifying information associatedwith the item can include a barcode (e.g., SKU, UPC, etc.), a RFID tag,etc.

As shown in FIG. 1B, the scan tool 116 includes a (local) controller162, sensors 164, camera devices 166, and network interface 168. Thecontroller 162 can be a processor or a micro-controller that controlssensors 164 and camera devices 166. The controller 162 can includesolely hardware and firmware or can include combinations of hardware andsoftware elements. For example, in one embodiment, upon detecting (viasensors 164) that an item has transitioned into the scan tool 116 or anarea (e.g., conveyor belt) in proximity to the scan tool 116, thecontroller 162 uses camera devices 166 to capture the identifyinginformation (e.g., barcode) associated with the item. Similar to sensors154, the sensors 164 may include, for example, proximity sensors, IRsensors, laser sensors, array sensors, etc. In one embodiment, the scantool 116 includes six camera devices 166 for scanning all (six) sides ofan item for the identifying information. In this embodiment, the scantool 116 may include the six camera devices 166 mounted within anenclosed structure (e.g., tunnel). The scan tool 116 may sendinformation associated with the captured identifying information to themaster controller 140 and/or the cloud computing service 160 via thenetwork interface 168. The network interface 168 may communicate using awired communication protocol (e.g., Ethernet), a wireless communicationprotocol (e.g., WiFi), etc.

Note that while FIG. 1B depicts the scan tool 116 with a (local)controller 162, in some embodiments, the scan tool 116 may not beequipped with a local controller (e.g., controller 162). In theseembodiments, the master controller 140 can send commands directly to thecamera devices 166 and/or sensors 164 to control the scan tool 116.Similarly, the master controller 140 can receive feedback informationfrom the scan tool 116 directly from the sensors 164, camera devices166, etc. via the network interface 168.

Based on the identifying information, the master controller 140 and/orthe cloud computing service 160 can determine whether the itemassociated with the identifying information was successfully singulatedwithin the singulation tool 114. For example, if the master controller140 and/or the cloud computing service 160 receives multiple validbarcodes from the scan tool 116 for a single item, the master controller140 and/or the cloud computing service 160 can determine that the itemwas not successfully singulated within the singulation tool 114. Inanother example, if the master controller 140 and/or the cloud computingservice 160 receives valid barcodes for different items within apredetermined amount of time, the master controller 140 and/or the cloudcomputing service 160 can determine that the items were not successfullysingulated (e.g., since they are within a specified gap distance).

As items exit the scan tool 116, the items are transitioned through thedivert tool 118. The divert tool 118 is configured to pass throughsingulated items via junction segments 120 (e.g., to other phases of thefacility) and divert (or re-circulate) non-singulated items back to thesingulation tool 114 via junction segments 122, 124, 126, 128, and 132.As shown in FIG. 1B, the divert tool 118 includes a (local) controller170, one or more motors 172, sensors 174, and a network interface 176.The controller 170 can be a processor or a micro-controller whichreceives commands from the master controller 140 (e.g., using thenetwork interface 176) and issues corresponding commands to the motor(s)172, which control the divert tool 118. The motor(s) 172 can include,for example, AC motors, DC motors, motor driven rollers, servo motors(e.g., integrated servo motors), etc. In one embodiment, the divert tool118 is a dual conveyor belt system controlled by a single motor 172. Inthis embodiment, the dual conveyors may be, for example, motor drivenroller conveyors and the motor 172 may be, for example, a servo motor.The network interface 176 may communicate using a wired communicationprotocol (e.g., Ethernet), a wireless communication protocol (e.g.,WiFi), etc.

Note that while FIG. 1B depicts the divert tool 118 with a (local)controller 170, in some embodiments, the divert tool 118 may not beequipped with a local controller (e.g., controller 170). In theseembodiments, the master controller 140 can send commands directly to themotor(s) 172 and/or sensors 174 to control the scan tool 116. Similarly,the master controller 140 can receive feedback information directly fromthe motor(s) 172, sensors 174, etc. of the divert tool 118.

In some cases, horizontal divert systems (also referred to as horizontaldiverting systems, horizontal recirculating systems, etc.) may not besuitable for diverting a wide variety of different items (e.g.,different sizes, different shapes, etc.) at a high rate. As such, insome embodiments, the divert tool 118 may be implemented as a verticaldivert system (e.g., as opposed to a horizontal divert system). Assumingthe vertical divert system includes two conveyor belts, each of theconveyor belts may pivot vertically (in different directions) around anend hinge point. A first of the two conveyor belts may pivot verticallyaround a first hinge point in a first direction (e.g., downwards) and asecond of the two conveyor belts may pivot vertically around a secondhinge point in a second direction (e.g., upwards). Upon detecting anitem (e.g., via sensors 174), the divert tool 118 may determine whetherthe item is a singulated item or a non-singulated item based oninformation received from the master controller 140 (e.g., via networkinterface 176). If the item is singulated, the controller 170 and/ormaster controller 140 may refrain from actuating the motor 172 to pivotthe conveyor belts. Instead, the controller 170 and/or master controller140 may control the conveyor belts to transition the item through thedivert tool 118. On the other hand, if the item is non-singulated, thecontroller 170 and/or master controller 140 may control the motor 172 topivot the conveyor belts. When pivoted, the item may fall from the dualconveyor belts to another conveyor belt (e.g., junction segment 122)beneath junction segment 120 that transitions the item back to thesingulation tool 114 for another singulation attempt.

FIGS. 5A-5E depict different views of an apparatus 500 that can bedeployed within a singulation tool 114, according to one embodiment. Inparticular, FIGS. 5A-5E show a perspective view, a first side view, asecond side view, a top view, and a bottom view, respectively, of theapparatus 500. The apparatus 500 is one example of the singulationmodule 130 depicted in FIGS. 1A-1B.

The apparatus 500 includes a frame 530, which provides a structure forhousing and/or mounting various components (e.g., sensors, motors,locking mechanisms, belt, rollers, etc.) of the apparatus 500. In oneembodiment, the frame 530 includes a lightweight metallic material(e.g., aluminum, aluminum alloy, etc.) that enables the apparatus 500 tohave a modular structure. For example, the frame 530 allows forapparatus 500 to be easily handled for maintenance and transportation,components of the apparatus 500 to be removed/replaced, and the like.The frame 530 includes a first side member 532 and a second side member534, which are connected to each other via connecting members 536 and538. As shown, e.g., in FIG. 5E, the connecting members 536 and 538 mayinclude one or more cutouts 540 to reduce weight of the frame 530. Notethe frame 530 is merely one example of a suitable structure for theapparatus 500. In general, the frame 530 can have any other suitablestructure and/or material that provides a modular structure for theapparatus 500.

The apparatus 500 includes a (front) roller 520, a (rear) roller 522,and a belt 512 (collectively referred to as a conveyor belt) thatrotates around the rollers 520 and 522. As shown, each end of therollers 520 and 522 is attached to a different side of the frame 530(e.g., via screws, bolts, brackets, etc.). For example, one end of theroller 520 is attached to the side member 534 of the frame 530 and theopposite end of the roller 520 is attached to the side member 532 of theframe 530. Similarly, one end of the roller 522 is attached to the sidemember 534 of the frame 530 and the opposite end of the roller 520 isattached to the side member 532 of the frame 530. A guide rail 516 isattached to the side member 532 of the frame 530 and a guide rail 514 isattached to the side member 534 of the frame 530. The frame 530 houses amotor 550 (e.g., servo motor) and pulley drive system 580 for rotatingthe belt 512 around the rollers 520 and 522. In particular, the motor550 is attached to the side member 534 of the frame 530 below the belt512. In one embodiment, the pulley drive system 580 is a tooth beltdrive system. A power port 590 and a network interface 570 (e.g.,Ethernet interface) for the apparatus 500 are attached to the connectingmember 538 of the frame 530. The network interface 570 is one example ofthe network interface 156 of the singulation module 130 depicted inFIGS. 1A-1B.

In some embodiments, the belt 512 may include multiple layers, e.g., inorder to reduce likelihood of items being damaged when they impact thesurface of the belt 512. As shown in FIG. 5D, the belt 512 includes afirst layer 542 and a second layer 544 disposed beneath the first layer542. In one embodiment, the first layer 542 includes a plastic material(e.g., a polyethylene, such as ultra-high-molecular-weight polyethylene(UHMW)). When used as the surface layer of the belt 512, the first layer542 may provide a rigid surface to grip items that impact the belt 512.The second layer 544 is used under the first layer 542 and providesadditional dampening to the belt 512 (e.g., for absorbing impacts ofitems on the belt 512). In one embodiment, the second layer 544 includesa foam. The foam can include sheet foam, spray foam (e.g., an open cellspray foam, such as polyurethane open cell spray foam), etc. In oneembodiment, the second layer 544 may have a thickness less than or equalto approximately 3/16 of an inch. With a thickness in this range, thesecond layer 544 can provide additional dampening to the belt 512 andreduce the chances of the first layer 542 being pierced by sharp objectsthat impact the belt 512.

As shown, the apparatus 500 also includes magnetic locks 502 A-C thatare fixed to the frame 530 (e.g., via screws, bolts, brackets, etc.). Inparticular, magnetic locks 502A and 502B are attached to a bottomportion of the side member 532 of the frame 530 and magnetic lock 502Cis attached to a bottom portion of the side member 534 of the frame 530.As described further below, the magnetic locks 502 A-C are used tosecure the apparatus 500 to the (frame of the) singulation tool 114. Forexample, the magnetic locks 502 A-C provide a quick mechanism forengaging/disengaging the apparatus 500 to/from a (horizontal) mountinglocation of the singulation tool 114. This allows for the apparatus 500to be quickly changed out for maintenance, relocated to a differentlocation of the singulation tool 114, etc. Note, that the magnetic locks502 A-C are just one example of a suitable locking mechanism forsecuring the apparatus 500 to the singulation tool 114. In general, theapparatus 500 can be secured to the singulation tool 114 via a varietyof mechanical locking mechanisms (e.g., clamps, pins, etc.) and electriclocking mechanisms that allow the apparatus 500 to have modularity.

In addition to the magnetic locks 502 A-C, the apparatus 500 includesfour locating pins 560 for aligning the apparatus to the particularmounting location of the singulation tool 114. Two locating pins 560 areattached to the bottom of side member 532 of the frame 530 and twolocating pins 560 are attached to the bottom of side member 534 of theframe 530. As described further below, the singulation tool 114 mayinclude a set of frame members (or connectors) that define a particularmounting location for each apparatus 500. The set of frame members mayinclude holes with locations corresponding to the locating pins 560,such that the locating pins 560 can drop into the holes when theapparatus 500 is aligned over the hole locations. This feature allowsthe apparatus 500 to sit in place within the frame 530 of thesingulation tool 114 and provides a fail-safe during operation of theapparatus 500. For example, the locating pins 560 can reduce thelikelihood of the apparatus 500 coming out of position during operationin situations where the apparatus 500 is not properly secured to theframe via the magnetic locks 502 A-C.

As noted, the singulation module 130 may include multiple sensors fordetecting items placed on the singulation module 130. Here, theapparatus 500 includes an array sensor 508 housed within the guide rails514 and 516. The array sensor 508 is used for detecting items that maybe present on the belt 512, e.g., along sensing length 592. The arraysensor 508 includes multiple emitter elements 508A housed within theguide rail 514 and multiple receiver elements 508B housed within theguide rail 516. The multiple emitter elements 508A and the multiplereceiver elements 508B are closely spaced apart (e.g., on the order ofmillimeters) along the sensing length 592. The array sensor 508 candetect item(s) on the belt 512, based on the particular beams blocked bythe item(s). As described further below with reference to FIG. 12 , thearray sensor 508 can be configured to detect position of item(s) on thebelt 512 within one or more location zones, where each location zonecorresponds to a particular area along the length of the belt 512. Thenumber of location zones that can be detected may be based in part onthe beam spacing of the emitter elements 508A.

In addition to the array sensor 508, the apparatus 500 includes a lasersensor 504 with a transmitting element 504A and a receiving element504B. The transmitting element 504A is attached to a track 506A, whichis attached to the side member 532 of the frame 530 (e.g., via screws,bolts, brackets, etc.). The receiving element 504B is attached to atrack 506B, which is attached to the side member 534 of the frame 530(e.g., via screws, bolts, brackets, etc.). The tracks 506A and 506Ballow for adjusting the position of the laser sensor 504 (e.g., along alength of the tracks 506A and 506B). The laser sensor 504 is used fordetecting thin (or low profile or low height) items (e.g., envelopes,credit cards, giftcards, mail, etc.) that may not be detected by thearray sensor 508.

The apparatus 500 includes a sensor configuration module 524 attached tothe side member 523 of the frame 530. The sensor configuration module524 provides easy accessibility to the laser sensor 504, e.g., forsensor calibration. The apparatus 500 also includes a plate 510 attachedbetween the side members 532 and 534 of the frame 530 at the front ofthe apparatus 500. The plate 510 helps to reduce jams that may occur inthe gaps between the apparatus and another (downstream) apparatus 500when items transition from the apparatus 500 to the other (downstream)apparatus 500. As shown in FIGS. 5B-C, the plate 510 includes a slot 528for adjusting (e.g., rotation of) the plate 510.

By using the apparatus 500 for the structure of the singulation module130, the singulation module 130 can be quickly changed out with anyother singulation module 130 within the singulation tool 114 in casesof, e.g., failure of a singulation module 130, maintenance of asingulation module 130, etc. In this manner, embodiments provide amodular singulation tool with multiple identical singulation modules130.

FIGS. 6A-6B depict a top view and perspective view, respectively, of anexample frame structure 600 for a singulation tool 114, according to oneembodiment. The frame structure 600 includes vertical support members606 A-G attached to the base 602 (e.g., via screws, bolts, brackets,etc.). In this embodiment, each vertical support member 606 includes oneor more frame members 610 attached to the vertical support member 606 atdifferent heights. As shown in FIG. 6B, for example, vertical supportmember 606A includes two frame members 610 and vertical support member606B includes three frame members 610.

The frame members 610 provide a flat horizontal mounting surface forattaching to a singulation module 130. Here, each frame member 610includes one or more clamp plates 612 that provides a flat mountingsurface for magnetic lock(s) 502 of the apparatus 500. In general, thenumber of frame members 610 attached to a vertical support member 606and/or the number of clamp plates attached to a frame member 610 maydepend on the particular configuration (e.g., spiral, whirlpool, etc.)of the singulation tool 114.

In this embodiment, a mounting location for each singulation module 130(e.g., apparatus 500) is provided by two frame members 610. Referring toFIG. 6A, the frame member 610 attached to the vertical support member606A and the frame member 610 attached to the vertical support member606E provide a first mounting location for a first apparatus 500. Inthis example, the magnetic locks 502A-C of the first apparatus 500 cansecure to the frame structure 600 via clamp plates 612A-C, respectively.Still referring to FIG. 6A, a second mounting location for a secondapparatus 500 is provided by the frame member 610 attached to thevertical support member 606E and the frame member 610 attached to thevertical support member 606. For example, the magnetic locks 502A-C ofthe second apparatus 500 can secure to the frame structure 600 via clampplates 612 D-F, respectively.

In some embodiments, the frame structure 600 can include an internalguard structure (or shielding) 620 to protect vertical support members606 E-G (e.g., from damage), prevent items from falling out of thesingulation modules 130 into an interior of the frame structure 600,etc. The guard structure 620 can include any suitable material, e.g.,plastic, metal, etc. In one particular embodiment, the guard structure620 includes a polycarbonate material housed within a metallic (e.g.,aluminum) frame. In some embodiments, the frame structure 600 caninclude pockets 622 integrated within the base 602 for transporting thesingulation tool 114. For example, in one embodiment, the base 602 canbe a pallet base with forklift pockets 622 (e.g., for easytransportation and reconfiguration on site).

FIG. 7 depicts a perspective view of an example frame structure 700 fora singulation tool 114, according to one embodiment. Compared to theframe structure 600, the frame structure 700 includes additional guardstructure (or shielding) 702 at the opposite ends of vertical supportmembers 606 E-G. In particular, the guard structure 702 is locatedbetween each level (or tier) of singulation modules 130. The guardstructure 702 can include any suitable material, e.g., plastic, metal,etc. In one particular embodiment shown in FIG. 7A, the guard structure702 includes a polycarbonate material 706 housed within a metallic(e.g., aluminum) frame 704. The guard structures 702 may be mounted tothe frame structure 700 via connecting members 710 (e.g., pipes, rods,etc.) which attach to one of vertical support members 606 E-G. As shownin FIG. 7A, for example, a first end of the connecting member 710 isattached to the vertical support member 606E and a second (opposite) endof the connecting member 710 is attached to the guard structure 702(e.g., via a strut channel, clamp plate, bolts, etc.). The guardstructures 702 can be used to prevent items from falling out of thesingulation modules 130 outside of the frame structure 700 (e.g., at theexterior sides).

As shown in FIG. 7B, in addition to the guard structure 702, the framestructure 700 includes corner structure members 720 located at thecorners of the frame structure 700. Each corner structure member 720includes a guard structure 722 (e.g., polycarbonate material) housedwithin a top frame member 724 and a bottom frame member 726. The top andbottom frame members 724 and 726 can be attached to each other via aclamp plate 728. The corner structure members 720 form curved cornerguards that can be used to prevent items from falling out of thesingulation modules 130 (e.g., at the corners). Further, in some cases,the corner structure members 720 can aid in singulation of items beingtransitioned through the singulation tool 114, e.g., by changingposition of the items at the corners.

FIGS. 8A-8D depict different views of an apparatus 800 that can be usedas the singulation tool 114, according to one embodiment. In particular,FIGS. 8A and 8B show a perspective view and a top view, respectively, ofthe apparatus 800 and FIGS. 8C and 8D show different side views of theapparatus 800. The apparatus 800 is one example of the singulation tool114 depicted in FIGS. 1A-1B.

In this particular embodiment, the apparatus 800 includes multipleidentical apparatuses 500 A-N (e.g., singulation modules 130) deployedin a spiral configuration. Each apparatus 500 is an upstream singulationmodule and/or a downstream singulation module with respect to anotherapparatus 500 in the apparatus 800. That is, each apparatus 500 isdisposed adjacent to another apparatus 500, such that the belt 512 ofthe apparatus 500 is at a height above or below the belt 512 of theother apparatus. For example, the first apparatus 500A is an upstreamsingulation module with respect to apparatus 500B, apparatus 500B is adownstream singulation module with respect to apparatus 500A and anupstream singulation module with respect to apparatus 500C, and so on.FIG. 8C1 shows one reference example of the waterfall height differencebetween apparatus 500M and apparatus 500N. FIG. 8D1 shows anotherreference example of the waterfall (corner) height difference betweenapparatus 500C and apparatus 500D.

The apparatus 800 may include apparatuses 500 deployed in multiplelevels (or tiers) (e.g., as shown in FIG. 8C) of progressively lowerheights. Each level corresponds to a predefined elevation (or height)range with respect to the ground. In this example, tier/level 1 includesapparatuses 500A-F, tier/level 2 includes apparatuses 500G-L, andtier/level 3 includes apparatuses 500M-N.

FIGS. 9A-9C depict different views of an apparatus 900 that can be usedfor diverting (and/or passing through) items that exit the singulationtool 114, according to one embodiment. In particular, FIGS. 9A-9C show aperspective view, a top view, and a front view of the apparatus 900. Theapparatus 900 is one example of the divert tool 118 depicted in FIGS.1A-1B.

The apparatus 900 includes a first conveyor belt 902 and a secondconveyor belt 904, each configured to rotate vertically around an endhinge point at the same time. For example, the first conveyor belt 902is configured to rotate around roller 906 in a first vertical direction(e.g., negative z direction) and the second conveyor belt 904 isconfigured to rotate around roller 908 in a second vertical direction(e.g., positive z direction). The apparatus 900 includes a motor (e.g.,servo motor) that drives two pulleys 910 and 920, e.g., in order toactuate both conveyor belts 902 and 904 simultaneously. As shown in FIG.9A1, in some embodiments, the apparatus 900 can use a clamping mechanism924 to suspend the end of the conveyor belt 904, e.g., in order tocreate identical ranges of motion between the two conveyor belts 902 and904.

In one embodiment, the apparatus 900 can be used to pass throughsuccessfully singulated items that exit the scan tool 116 and/or divertunsuccessfully singulated (e.g., non-singulated) items back to thesingulation tool 114. As shown in FIG. 9 , the apparatus 900 includes a(tapered) chute 912 for passing through successfully singulated itemsfrom the second conveyor belt 904 and a chute 914 for divertingnon-singulated items from the first conveyor belt 902. As shown in FIG.9A1, in some embodiments, the apparatus 900 can include one or moresensors 922 (e.g., proximity sensors, over-travel sensors, etc.)attached to each conveyor belt to detect position of the conveyor belt(e.g., as it rotates). In one reference example of the conveyor belt 902shown in FIG. 10 , the conveyor belt 902 includes multiple laser sensors(or photoeyes) 1008 and 1006 A-C for detecting items on the belt 1010.The laser sensors 1006 A-C are used to trigger actuation of the conveyorbelts 902 and 904. In one embodiment, for example, when all of the lasersensors 1006A-C are triggered (indicating presence of an item), themaster controller 140 triggers rotation of the conveyor belt 902 and theconveyor belt 904.

FIG. 11 depicts a side view of an apparatus 1100 that can be used fordiverting items that exit the singulation tool 114, according to oneembodiment. The apparatus 1100 is one example of the divert tool 118. Inthis particular embodiment, the apparatus 1100 is configured to passsuccessfully singulated items through the conveyor belts 902 and 904 toa tote on the junction segment 120. Similarly, the apparatus 1100 isconfigured to divert (e.g., by rotating the conveyor belts 902 and 904around their respective end hinge points) unsuccessfully singulateditems to the junction segment 122, which is underneath the conveyor belt904, for recirculation through the singulation tool 114.

In some embodiments, the apparatus 1100 includes stops (e.g., rubberstops) 1102 and 1104 as an additional fail-safe, e.g., to prevent theover-travel of the switching motion of conveyor belts 904 and 902,respectively. As shown, the motor 930 and control system 1006 (e.g.,similar to controller 170) are mounted outside of the switch frame toimprove access for maintenance.

As discussed above, each singulation module 130 can include multiplesensors (e.g., array sensors, laser sensors, etc.) for detecting itemson the singulation module 130. In some embodiments, the singulationmodule 130 can use position (e.g., array) sensors to detect position ofitems on the singulation module 130. FIG. 12 illustrates one example ofa singulation module 130 using an array sensor to detect location ofitems on the singulation module, according to one embodiment. In thisembodiment, the singulation module 130 can detect items along a length1220 (e.g., similar to sensing length 592) of the singulation module130. In this example, the length 1220 is divided into five different(location) zones 1-5, where each location zone represents a differentportion of the length 1220. Note that FIG. 12 uses five zones merely asa reference example of the number of location zones that can be detectedwith the array sensor. Those of ordinary skill in the art will recognizethat the resolution (e.g., number of location zones) can be higher orlower (e.g., more or less than five). In general, the number of locationzones is dependent on the number of emitter elements of the array sensorand the beam spacing between those emitter elements. Further, the “box”shaped items 1202, 1204, 1206, 1208, and 1210 generally represent itemsof various different shapes, sizes, configurations, etc.

In this particular embodiment, the singulation module 130 can determinewhich of the zones 1-5 a particular item is located in based on theparticular beams (e.g., in the zone) that are blocked by an item. Usingitem 1208 as an example, the singulation module 130 can detect that item1208 is in zone 5 based on the beams that are blocked by item 1208(e.g., in zone 5). In another example, the singulation module can detectthat an item (e.g., item 1206) is in multiple zones 3 and 4.

In some cases, the singulation module 130 maybe unable to determine ifthere are multiple items present on the singulation module from thearray sensor. For example, items 1202 and 1204 may appear as a singleitem to the array sensor, since at least a portion of the items 1202 and1204 are in parallel. Additionally, in some cases, the array sensor maynot be able to detect low-profile items (e.g., item 1210) on thesingulation module. In these cases, the singulation module can use alaser sensor to detect low-profile items, such as item 1210. While thesingulation module 130 can use the array sensor to detect position ofitems along length 1220, the array sensor may not be able to determineposition of items along width 1222.

The master controller 140 independently controls the speed of eachsingulation module 130 within the singulation tool 114, based on sensorfeedback from one or more of the singulation modules 130, theconfiguration of the singulation modules 130 (e.g., linear orperpendicular orientation with respect to other singulation modules130), etc. In some embodiments, the master controller 140 controls thesingulation modules 130, so that items are singulated to a specified gapdistance in order to maintain a predetermined rate (e.g., UPH). In oneexample, the rate may be a predetermined number of units that exit thesingulation tool 114 in a given time period. In another example, therate may be a predetermined number of units that are scanned by the scantool 116 (e.g., after exiting the singulation tool 114). As describedbelow, to maintain the rate, the master controller 140 can control thesingulation modules 130 to increase gaps between items as theytransition through the singulation tool 114 and/or decrease gaps betweenitems as they transition through the singulation tool 114.

FIGS. 13 A-C illustrate an example scenario 1300 of controllingsingulation modules 130A-B that are in a linear configuration, accordingto one embodiment. Here, in FIG. 13A, the master controller 140 runssingulation modules 130A and 130B and can detect items 1302 and 1304 onsingulation module 130A. In FIG. 13B, as the item 1304 transitions ontothe singulation module 130B, the master controller 140 can determinewhether the distance between items 1302 and 1304 satisfies a gapcondition (e.g., gap is below a threshold distance for a predeterminedrate), based on sensor feedback from singulation modules 130A and 130Bregarding the triggered zones in each singulation module 130A and 130B.

Here, as shown in FIG. 13B, the master controller 140 determines thatthe distance (d₁) between the items 1302 and 1304 does not satisfy thegap condition (e.g., d₁ is below a threshold gap distance). In response,the master controller 140 stops singulation module 130A and runssingulation module 130B. Subsequently, as shown in FIG. 13C, the mastercontroller 140 runs singulation modules 130A and 130B (e.g., afterdetecting that the distance d₂ between the items 1302 and 1304 satisfiesthe gap condition). In some embodiments, as opposed to stoppingsingulation module 130A and running singulation module 130B (e.g., afterdetermining d₁ is below a threshold gap distance), the master controller140 can reduce the speed of singulation module 130A relative tosingulation module 130B or increase the speed of singulation module 130Brelative to singulation module 130A. In some embodiments, the mastercontroller 140 can determine the distance d₁ and d₂ based on sensorfeedback indicating the zones that are triggered and motor feedbackindicating the speeds of each of the singulation modules 130A and 130B.

FIGS. 14 A-C illustrate an example scenario 1400 of controllingsingulation modules 130A-B that are in a linear configuration, accordingto one embodiment. As shown in FIG. 14A, when item 1404 is in zone 4 ofsingulation module 130B, the item 1402 is in zone 1 of singulationmodule 130A. The master controller 140 can determine that the distanced₁ between items 1402 and 1404 does not satisfy a gap condition (e.g.,d₁ is greater than a threshold distance) for a predetermined rate. Inresponse, the master controller 140 (as shown in FIG. 14B) increases thespeed of singulation module 130A, e.g., to decrease the gap distancebetween items 1402 and 1404 from d₁ to d₂. As shown in FIG. 14C, themaster controller 140 resumes running singulation modules 130A and 130Bat their respective previous speeds. In some embodiments (not shown),the master controller 140 may stop singulation module 130B and continueto run singulation module 130A, e.g., to decrease the gap distancebetween items 1402 and 1404 from d₁ to d₂.

FIGS. 15 A-B illustrate an example scenario 1500 of controllingsingulation modules 130A-B in jamming conditions, according to oneembodiment. In some cases, a jamming condition can occur in scenarioswhere long items (or obtuse or irregular items) transition from onesingulation module (e.g., singulation module 130A) to anothersingulation module (e.g., singulation module 130B). In FIG. 15A, forexample, as the item 1502 begins to transition onto the singulationmodule 130B, the item 1502 is detected by the presence (e.g., laser)sensor on singulation module 130A. In one reference example, thepresence sensor on singulation module 130A can return to the mastercontroller 140 a value of “1” for “item detected” to indicate that anitem is present at the edge of the singulation module 130A. In thisparticular scenario, if the master controller 140 determines there hasbeen no change in the state of the presence sensor for a predeterminedamount of time, the master controller 140 may refrain from stoppingsingulation module 130A. Here in FIG. 15A, for example, the mastercontroller 140 determines that there has been no change in the value for“item detected” from the presence sensor for a predetermined amount oftime (e.g., the value of “1” has not changed). In response, mastercontroller 140 continues to run singulation modules 130A and 130B (e.g.,as opposed to stopping singulation module 130A when a portion of item1502 is detected on singulation module 130B) to prevent item 1502 fromgetting stuck (or jammed) between singulation module 130A andsingulation module 130B. In this manner, the master controller 140 canprevent jamming conditions that may occur in the singulation tool 114.

FIGS. 16 A-C illustrate an example scenario 1600 of controllingsingulation modules 130A-B that are in a perpendicular configuration,according to one embodiment. Here, in FIG. 16A, the master controller140 runs singulation modules 130A and 130B and can detect items 1602 and1604 on singulation module 130A. In FIG. 16B, as the item 1604transitions onto the singulation module 130B, the item 1602 is detectedby the laser sensor on singulation module 130A. In some embodiments, themaster controller 140 at this point can decide whether to continuerunning singulation module 130A based on the position of the item 1604on singulation module 130B. Here, for example, after the mastercontroller 140 detects item 1602 with the laser sensor on singulationmodule 130A, the master controller 140 determines whether the item 1604is within a predefined region on singulation module 130B. In thisexample, the predefined region on singulation module 130B corresponds tozones 1-3 with an area approximately equal to the width 1622 of thesingulation module 130A times the width 1626 of the singulation module130B.

Because the master controller 140 may not be able to determine the exactposition of the item 1602 on singulation module 130A along the width1622, the master controller 140 may refrain from running singulationmodule 130A (e.g., when item 1602 is detected by the laser sensor onsingulation module 130A) until it can determine that the item 1604 (andother items that may be present on singulation module 130B) has clearedthe predefined region and the minimum gap distance 1624 from thepredefined region. Doing so allows the master controller 140 to ensurethat at least a minimum gap distance 1624 exists between items on thesingulation module 130B and the singulation module 130A, e.g., in caseswhere the item 1602 is located on the bottom side edge of thesingulation module 130A. Thus, as shown in FIG. 16B, after detectingitem 1602 with the laser sensor on singulation module 130A, the mastercontroller 140 stops singulation module 130A while the item 1604 iswithin width 1622 and minimum gap distance 1624, and runs singulationmodule 130B. Subsequently, as shown in FIG. 16C, the master controller140 runs both singulation modules 130A and 130B, e.g., after the item1604 has cleared the minimum gap distance 1624.

FIGS. 17 A-C illustrate an example scenario 1700 of controllingsingulation modules 130A-B that are in a perpendicular configuration,according to one embodiment. As shown in FIG. 17A, when item 1704 is inzone 5 of singulation module 130B, the item 1702 is in zone 1 ofsingulation module 130A. Here, the master controller 140 may determinethat the minimum gap between the items 1704 and 1702 is approximatelyequal to the sum of length 1726 and minimum gap distance 1624, and thatthe minimum gap is greater than a threshold distance (e.g., for apredetermined rate). In response, the master controller (as shown inFIG. 17B) increases the speed of singulation module 130A, e.g., todecrease at least a portion of the length 1726. In some embodiments,once the item 1702 is detected by the laser sensor on singulation module130A, the master controller 140 may determine whether any items onsingulation module 130B are within the predefined region beforetransitioning the item 1702 onto the singulation module 130B. As shownin FIG. 17B, the master controller 140 returns the singulation module130A to normal speed after determining that the item 1704 has clearedthe minimum gap distance 1624. Here, for example, the item 1704 is atleast a distance 1728 away from the predefined region.

FIGS. 18 A-B illustrate an example scenario 1800 of item detection whentransitioning between singulation modules 130A-130B in a perpendicularconfiguration, according to one embodiment. As noted above, in somecases, multiple items may not be detected by the singulation module,e.g., if the items are parallel with respect to one another in the samezone. As shown in FIG. 18A, for example, the singulation module 130A mayinfer that there is an item present in zone 6 of the singulation module130A, but may not be able to detect that there are two items 1802 and1804. To address this problem, embodiments can deploy singulationmodules in a perpendicular configuration, e.g., at various locationswithin the singulation tool 114, to increase the chances for itemdetection, and in turn singulation. As shown in FIG. 18B, for example,as the items 1802 and 1804 transition from singulation module 130A tosingulation module 130B, item 1802 is detected in zone 1 of thesingulation module 130B and item 1804 is detected in zone 4 of thesingulation module 130B.

FIG. 19 is a flowchart illustrating a method 1900 for singulating itemsusing multiple singulation modules (e.g., singulation modules 130, suchas apparatus 500), according to one embodiment. The method 1900 may beperformed by the control system 102.

The method 1900 begins at block 1902, where the control system 102detects a first item on a first singulation module (e.g., singulationmodule 130B). At block 1904, the control system 102 detects a seconditem on a second singulation module (e.g., singulation module 130A). Thefirst singulation module is a downstream singulation module relative tothe second singulation module. At block 1906, the control system 102determines an orientation (or configuration) of the first singulationmodule relative to the second singulation module. For example, in oneembodiment, the control system 102 determines whether the first andsecond singulation modules are in a perpendicular orientation or in alinear orientation.

If, at block 1908, the control system 102 determines the first andsecond singulation modules are not in a perpendicular orientation (e.g.,the control system 102 determines the first and second singulationmodules are in a linear configuration), the control system 102determines a distance between the first item and the second item (block1910). In some embodiments, the control system 102 can determine thedistance between the first item and the second item based on at leastone of: (1) the speed of each of the first singulation module and thesecond singulation module and (2) the particular zones triggered by theitems (e.g., zone 1 of the first singulation module may have apredefined distance to zone 3 of the second singulation module, etc.).At block 1914, the control system 102 controls the first singulationmodule and the second singulation module based on the distance betweenthe first item and the second item.

If, at block 1908, the control system 102 determines the first andsecond singulation modules are in a perpendicular orientation, thecontrol system 102 determines the position of the first item on thefirst singulation module and the position of the second item on thesecond singulation module (block 1912). For example, as discussed abovewith regard to FIGS. 16 A-C, the control system 102 can determine theposition of the first item (e.g., item 1604) along a length of the firstsingulation module and determine the position of the second item (e.g.,item 1602) along a length of the second singulation module. At block1916, the control system 102 controls the first singulation module andthe second singulation module based on the position of the first item onthe first singulation module and the position of the second item on thesecond singulation module. In one embodiment, for example, as discussedabove with regard to FIGS. 16 A-C, after the first item transitions tothe first singulation module, the control system 102 may continue to runthe second singulation module until the second item reaches (and isdetected by) the laser sensor on the second singulation module. In thisembodiment, the control system 102 may refrain from running the secondsingulation module, e.g., when the second item reaches the laser sensoron the second singulation module and when the first item is still withina predefined region (and/or a minimum gap distance from the predefinedregion) on the first singulation module. Similarly, in this embodiment,the control system 102 may run the second singulation module, e.g., whenthe first item has cleared the minimum gap distance from the predefinedregion on the first singulation module.

FIG. 20 is a flowchart illustrating a method 2000 for controllingsingulation modules in a linear orientation (e.g., singulation modules130, such as apparatus 500), according to one embodiment. The method2000 begins at the start of block 1914 of the method 1900. The method2000 may be performed by the control system 102.

The method 2000 begins at block 2002, where the control system 102determines a current rate of items exiting the singulation tool (e.g.,singulation tool 114). In one embodiment, the control system 102 candetermine the current rate based on a number of items detected by thelast downstream singulation module (e.g., apparatus 500N) of thesingulation tool 114 within a time period. At block 2004, the controlsystem 102 determines if the current rate is equal to the desired rate(or, in some embodiments, within a threshold range of the desired rate).If so, the method ends.

If the current rate is not equal to the desired rate (or is not within athreshold range of the desired rate), the control system 102 determinesif the singulation tool is below the desired rate (or above the desiredrate) (block 2006). If the singulation tool is below the desired rate,the control system 102 controls the first and second singulation modulesto reduce the distance between the first and second items (e.g., inorder to increase the current rate) (block 2008). If the singulationtool is not below the desired rate (e.g., the singulation tool is abovethe desired rate), the control system 102 controls the first and secondsingulation modules to increase the distance between the first andsecond items (e.g., in order to reduce the current rate) (block 2010).

FIG. 21 is a flowchart illustrating a method 2100 for controllingsingulation modules in a perpendicular orientation (e.g., singulationmodules 130, such as apparatus 500), according to one embodiment. Themethod 2100 begins at the start of block 1916 of the method 1900. Themethod 2100 may be performed by the control system 102.

The method 2100 begins at block 2102, where the control system 102determines whether the position of the first item on the firstsingulation module is within a predefined region on the firstsingulation module. For example, in one embodiment, the predefinedregion may have an area approximately equal to the width of the secondsingulation module times the width of the first singulation module. Thepredefined region on the first singulation module may start from a firstend of the belt on the first singulation module and extend along alength of the belt on the first singulation module. If, at block 2102,the control system 102 determines the first item is within thepredefined region, the control system 102 determines whether the seconditem has been detected by the laser sensor on the second singulationmodule (e.g., whether the position of the second item has reached thelaser sensor on the second singulation module) (block 2104). If thesecond item is detected by the laser sensor, the control system 102stops the second singulation module and continues to run the firstsingulation module (block 2106).

If the control system 102 determines the second item has not beendetected by the laser sensor (block 2104), the method proceeds to block2106. In one embodiment, the control system 102 may continue to run thesecond singulation module if the second item has not been detected bythe laser sensor on the second singulation module. Similarly, if thecontrol system 102 determines that the first item is not within thepredefined region, the method proceeds to block 2108. At block 2108, thecontrol system 102 determines the current rate of items exiting thesingulation tool.

If, at block 2110, the control system 102 determines that the currentrate is equal to the desired rate (or within a threshold range of thedesired rate), the method ends. If, at block 2110, the control system102 determines that the current rate is not equal to the desired rate(or is not within a threshold range of the desired rate), the controlsystem 102 determines if the singulation tool 114 is below the desiredrate (or above the desired rate) (block 2112). If the singulation toolis below the desired rate, the control system 102 controls the first andsecond singulation modules to reduce the distance between the first itemand the predefined region (e.g., in order to increase the current rate)(block 2114). If the singulation tool is not below the desired rate(e.g., the singulation tool is above the desired rate), the controlsystem 102 controls the first and second singulation modules to increasethe distance between the first item and the predefined region (e.g., inorder to reduce the current rate) (block 2116). When controlling thefirst and second modules, the control system 102 may ensure that thefirst item and the second item are separated by at least the minimum gapdistance (e.g., minimum gap distance 1624) on the first singulationmodule (e.g., singulation module 130B).

In some cases, different totes may be associated with different types ofitems. For example, a first tote may include items having a first size(e.g., 50 textbooks), and a second tote may include items having asecond size (e.g., 50 giftcards). In such cases, the operating settings(e.g., speed settings) of the different singulation modules 130 withinthe singulation tool 114 that are used for singulating items from thefirst tote may not be suitable for singulating items from the secondtote. As such, embodiments provide techniques that can configureoperating parameters (e.g., speed, gap distance, etc.) of thesingulation modules 130 within the singulation tool 114, based on thetype of items that enter the singulation tool 114.

FIG. 22 is a flowchart illustrating a method 2100 for configuringsingulation modules (e.g., singulation modules 130, such as apparatus500) based on a type of items, according to one embodiment. The method2200 may be performed by the control system 102 for each incoming tote.

The method 2200 begins at block 2202, where the control system 102determines a type of items associated with the incoming tote. In oneembodiment, the control system 102 can determine the type of items basedon information obtained from a scan of the incoming tote. In oneexample, the scan may be performed by an operator (e.g., human, machine,etc.) prior to the items being received in the loading area 112.

At block 2204, the control system 102 selects a configuration model forthe singulation tool (e.g., singulation tool 114) from a plurality ofconfiguration models, based on the type of items. In one embodiment, theconfiguration models can be stored in a database, e.g., in the cloudcomputing service 160. The cloud computing service 160, for example, canuse machine learning techniques to continually update the configurationmodels based on input from other singulation tools 114 (e.g., in thefacility). The control system 102 can request the particularconfiguration model to use for the type of items from the cloudcomputing service, and receive a response indicating the configurationmodel. In another embodiment, the configuration model can be selectedbased on a predefined association between the type of items and aconfiguration model. In this embodiment, the control system 102 canrevert to a default configuration model, e.g., in cases where apredefined association does not exist for a given type of items. Atblock 2206, the control system 102 configures the singulation modules ofthe singulation tool according to the selected configuration model.

FIG. 23 is a flowchart illustrating a method 2300 for controllingsingulation modules (e.g., singulation modules 130, such as apparatus500) to prevent (or reduce occurrence of) jamming conditions, accordingto one embodiment. The method 2300 may be performed by the controlsystem 102.

The method 2300 begins at block 2302, where the control system 102detects a first item (e.g., item 1502) on a first singulation module(e.g., singulation module 130A), based on an indication received from afirst sensor on the first singulation module. At block 2304, the controlsystem 102 detects a second item (e.g., item 1502) on a secondsingulation module (e.g., singulation module 130B) after detecting thefirst item on the first singulation module. At block 2306, the controlsystem 102 determines if there has been a change in the indication fromthe first sensor after a predetermined amount of time. If so, thecontrol system 102 stops the first singulation module and runs thesecond singulation module (block 2310). On the other hand, if there hasnot been a change, the control system 102 refrains from stopping thefirst singulation module and runs the second singulation module (block2308).

FIG. 24 is a flowchart illustrating a method 2400 for recirculatingnon-singulated items through a singulation tool (e.g., singulation tool114), according to one embodiment. The method 2400 may be performed bythe control system 102.

The method 2400 may be performed for each item exiting the singulationtool. In one embodiment, the control system 102 can receive anindication of each item exiting the singulation tool. In one example,the control system 102 may receive sensor feedback from the lastdownstream singulation module (e.g., apparatus 500N) indicating presenceof an item. In another example, the control system 102 may receivesensor feedback from the scan tool (e.g., scan tool 116) indicatingpresence of an item.

At block 2402, the control system 102 scans the at least one item, e.g.,using the scan tool. At block 2404, the control system 102 determines,based on the scan, if a divert condition is present. The divertcondition can include at least one of: (1) detecting multiple valididentifying information (e.g., barcodes) on the item; (2) detectingmultiple items within a predetermined time period (or within a specifiedgap distance); and (3) failure to read identifying information on theitem.

In response to detecting a divert condition (block 2404), the controlsystem 102, at block 2406, controls the divert tool (e.g., divert tool118, such as apparatus 900, apparatus 1000, etc.) to recirculate theitem back to the singulation tool 114. For example, in one embodiment,the control system 102 can trigger the divert tool to simultaneouslyrotate conveyor belts 902 and 904 around their respective hinge pointsin opposite vertical directions. In this manner, the item can betransitioned from the conveyor belt 902 onto junction segment 122 to berecirculated back through the singulation tool 114.

If the control system 102 determines that a divert condition is notpresent, the control system 102, at block 2408, controls the divert toolto pass the item through, e.g., to a catch bin, to another conveyor beltsystem, etc. In one embodiment, the control system 102 can trigger thedivert tool to pass the item through conveyor belts 902 and 904 ontojunction segment 120 (e.g., as illustrated in FIG. 10 ).

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

In the preceding, reference is made to embodiments presented in thisdisclosure. However, the scope of the present disclosure is not limitedto specific described embodiments. Instead, any combination of thefeatures and elements described herein, whether related to differentembodiments or not, is contemplated to implement and practicecontemplated embodiments. Furthermore, although embodiments disclosedherein may achieve advantages over other possible solutions or over theprior art, whether or not a particular advantage is achieved by a givenembodiment is not limiting of the scope of the present disclosure. Thus,the aspects, features, embodiments and advantages described herein aremerely illustrative and are not considered elements or limitations ofthe appended claims except where explicitly recited in a claim(s).Likewise, reference to “the invention” shall not be construed as ageneralization of any inventive subject matter disclosed herein andshall not be considered to be an element or limitation of the appendedclaims except where explicitly recited in a claim(s).

Aspects of the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, microcode, etc.) or an embodiment combiningsoftware and hardware aspects that may all generally be referred toherein as a “circuit,” “module” or “system.”

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

What is claimed is:
 1. A system comprising: a singulation apparatus; adiverting apparatus configured to receive an item from the singulationapparatus, the diverting apparatus comprising: a first conveyor beltconfigured to rotate around a first roller at an end of the firstconveyor belt; a second conveyor belt disposed adjacent to the firstconveyor belt and configured to rotate around a second roller at an endof the second conveyor belt; and a motor configured to drive a rotationof the first conveyor belt and a rotation of the second conveyor belt;and a controller configured to: determine whether the item issingulated, upon detecting the item on the first conveyor belt; controlthe first conveyor belt and the second conveyor belt to pass the itemfrom the singulation apparatus to a third conveyor belt, when the itemis singulated; and control, via the motor, a rotation of the firstconveyor belt and a rotation of the second conveyor belt to divert theitem from the singulation apparatus to a fourth conveyor belt, when theitem is not singulated.
 2. The system of claim 1, wherein controllingthe first conveyor belt and the second conveyor belt to pass the item tothe third conveyor belt comprises: controlling the first conveyor beltto transfer the item to the second conveyor belt; and controlling thesecond conveyor belt to transfer the item to the third conveyor belt. 3.The system of claim 1, wherein controlling the rotation of the firstconveyor belt and the rotation of the second conveyor belt comprisesinstructing the motor to (i) rotate the first conveyor belt around thefirst roller in a first vertical direction and (ii) rotate the secondconveyor belt around the second roller in a second vertical direction.4. The system of claim 3, wherein the motor is configured tosynchronously rotate the first conveyor belt and the second conveyorbelt.
 5. The system of claim 3, wherein: the rotation of the firstconveyor belt in the first vertical direction and the rotation of thesecond conveyor belt in the second vertical direction creates a gapbetween the first conveyor belt and the second conveyor belt; and thefirst conveyor belt is configured to transfer the item to the fourthconveyor belt through the gap.
 6. The system of claim 5, wherein thefourth conveyor belt is disposed below the diverting apparatus.
 7. Anapparatus configured to divert one or more items that exit from asingulation apparatus, the apparatus comprising: a first conveyor beltconfigured to rotate around a first roller disposed at a first end ofthe first conveyor belt; a second conveyor belt disposed adjacent to thefirst conveyor belt and configured to rotate around a second rollerdisposed at a first end of the second conveyor belt; and a motorconfigured to control rotation of the first conveyor belt and rotationof the second conveyor belt to divert at least one item of the one ormore items that exit from the singulation apparatus, wherein the motoris configured to rotate the first conveyor belt around the first rollerin a first vertical direction and rotate the second conveyor belt aroundthe second roller in a second vertical direction.
 8. The apparatus ofclaim 7, wherein: the first vertical direction is a negative zdirection; and the second vertical direction is a positive z direction.9. The apparatus of claim 7, further comprising: a first pulley coupledto a second end of the first conveyor belt; and a second pulley coupledto a second end of the second conveyor belt.
 10. The apparatus of claim9, wherein the motor is configured to drive the first pulley to rotatethe first conveyor belt in the first vertical direction and drive thesecond pulley to rotate the second conveyor belt in the second verticaldirection.
 11. The apparatus of claim 7, wherein: the rotation of thefirst conveyor belt in the first vertical direction and the rotation ofthe second conveyor belt in the second vertical direction creates a gapbetween a second end of the first conveyor belt and a second end of thesecond conveyor belt; and the first conveyor belt is configured totransfer the at least one item to a third conveyor belt through the gapbetween the second end of the first conveyor belt and the second end ofthe second conveyor belt.
 12. The apparatus of claim 11, wherein thethird conveyor belt is located underneath the apparatus.
 13. Theapparatus of claim 7, wherein the first conveyor belt further comprisesa plurality of sensors configured to detect a presence of the at leastone item on the first conveyor belt.
 14. The apparatus of claim 13,wherein the motor is triggered to control the rotation of the firstconveyor belt and the rotation of the second conveyor belt to divert theat least one item when the at least one item is detected by each of theplurality of sensors.
 15. The apparatus of claim 14, further comprisinga controller configured to trigger the motor to control the rotation ofthe first conveyor belt and the rotation of the second conveyor belt,based on whether the at least one item is a singulated item.
 16. Acomputer-implemented method for controlling an apparatus configured todivert one or more items that exit a singulation apparatus, thecomputer-implemented method comprising: detecting a first item of theone or more items on a first conveyor belt of the apparatus; determiningwhether the first item is singulated, based on a distance between thefirst item and a second item of the one or more items; upon determiningthat the first item is singulated, controlling the first conveyor beltto transfer the first item onto a second conveyor belt of the apparatus;and upon determining that the first item is not singulated, controllinga rotation of the first conveyor belt and a rotation of the secondconveyor belt to divert the first item onto a third conveyor belt. 17.The computer-implemented method of claim 16, wherein: determining thatthe first item is singulated comprises determining that the distancesatisfies a predetermined condition; and determining that the first itemis not singulated comprises determining that the distance does notsatisfy the predetermined condition.
 18. The computer-implemented methodof claim 16, wherein: controlling the rotation of the first conveyorbelt comprises rotating the first conveyor belt around a first rollerdisposed at a first end of the first conveyor belt in a first verticaldirection; and controlling the rotation of the second conveyor beltcomprises rotating the second conveyor belt around a second rollerdisposed at a first end of the second conveyor belt in a second verticaldirection.
 19. The computer-implemented method of claim 18, wherein: therotation of the first conveyor belt in the first vertical direction andthe rotation of the second conveyor belt in the second verticaldirection creates a gap between a second end of the first conveyor beltand a second end of the second conveyor belt; and the first item isdiverted from the first conveyor belt onto the third conveyor beltthrough the gap between the second end of the first conveyor belt andthe second end of the second conveyor belt.
 20. The computer-implementedmethod of claim 16, wherein: the first conveyor belt and the secondconveyor belt are rotated synchronously.